用例描述了用户如何使用系统来实现特定目标。用例图由系统、相关用例和参与者组成,并将它们相互关联以可视化:描述了什么?(系统),谁在使用系统?(演员)以及演员想要达到什么目标?(用例),因此,用例有助于确保通过从用户的角度捕获需求来开发正确的系统。
用例图通常很简单。它没有显示用例的详细信息:
- 它只总结了用例、参与者和系统之间的一些关系。
- 它没有显示为实现每个用例的目标而执行的步骤的顺序。
如前所述,用例图应该很简单,并且只包含几个形状。如果您的用例包含超过 20 个用例,则您可能误用了用例图。
下图显示了UML图层次结构和UML用例图的定位。如您所见,用例图属于行为图家族。
用例图一览
用统一建模语言定义了标准形式的用例图,如下面的用例图示例所示:
符号 描述 视觉表示
演员
- 有人与用例(系统功能)交互。
- 以名词命名。
- 演员在商业中扮演角色
- 类似于用户的概念,但一个用户可以扮演不同的角色
- 例如:
- 一个教授。可以是讲师,也可以是研究员
- 在两个系统中扮演 2 个角色
- 参与者触发用例。
- Actor 对系统负责(输入),Actor 对系统有期望(输出)。
用例
- 系统功能(过程——自动或手动)
- 以动词+名词(或名词短语)命名。
- 即做某事
- 每个 Actor 必须链接到一个用例,而某些用例可能没有链接到 Actor。
通讯链接
- 参与者在用例中的参与通过将参与者连接到用例中来显示。
- 参与者可以通过关联连接到用例,这表明参与者和用例使用消息相互通信。
系统边界
- 系统边界可能是需求文档中定义的整个系统。
- 对于大型复杂系统,每个模块都可能是系统边界。
- 例如,对于一个组织的 ERP 系统,每个模块,如个人、工资、会计等。
- 可以为特定于这些业务功能中的每一个的用例形成系统边界。
- 整个系统可以跨越所有这些描述整个系统边界的模块
用关系构建用例图
用例共享不同类型的关系。定义两个用例之间的关系是用例图的软件分析师的决定。两个用例之间的关系基本上是对两个用例之间的依赖关系进行建模。通过使用不同类型的关系重用现有用例可减少开发系统所需的整体工作量。用例关系如下所示:
用例关系——视觉表示
扩展
- 表示“无效密码”用例可能包括(根据扩展中的规定)由基本用例“登录帐户”指定的行为。
- 用带有虚线的定向箭头描绘。箭头的尖端指向基本用例,子用例连接在箭头的底部。
- 构造型“<<extends>>”标识为扩展关系
包括
- 当一个用例被描述为使用另一个用例的另一个功能的功能时,用例之间的这种关系被称为包含或使用关系。
- 一个用例包括另一个用例中描述的功能,作为其业务流程的一部分。
- 从基本用例到子用例的使用关系表明基本用例的实例将包括在子用例中指定的行为。
- 包含关系用具有虚线的定向箭头来描绘。箭头的尖端指向连接在箭头底部的子用例和父用例。
- 构造型“<<include>>”将关系标识为包含关系。
概括
- 泛化关系是用例之间的父子关系。
- 泛化关系中的子用例具有底层业务流程含义,是对父用例的增强。
- 泛化显示为带有三角形箭头的定向箭头。
- 子用例连接在箭头的底部。箭头的尖端连接到父用例。
以身作则——旅客服务
这是一个客运服务的用例图示例,我们来看看。在用例模型中有 4 个参与者:值机代表、目的地机场海关、旅客和行李运输。它们与系统交互以实现各种业务目标,如用用例登记、自动登记、快速登记、登机和请求乘客列表建模。
使用此用例图表模板创建您自己的图表。
只需 单击 使用此模板 进行编辑,或 单击 创建空白 从头开始绘制。
通过示例学习 – 广播系统(用例包)
这是一个在线广播系统的用例图示例。普通会员和管理员等用户被表示为参与者,而系统的业务目标,例如观看存档和直播节目,加入节目讨论,上传电视节目,被表示为用例(即椭圆形)。此用例图使用系统边界和包形状来组织用例。这不是必须的,但这样做可以使整个用例图井井有条。此外,在将 General/Premium Member 与 Member 联系起来时使用泛化模拟了为 Member 定义的行为在 General 和 Premium Member 之间共享的事实。
使用此用例图表模板创建您自己的图表。
只需 单击 使用此模板 进行编辑,或 单击 创建空白 从头开始绘制。
通过示例学习 — 使用 Include 和 Extend 构建用例
这个用例图示例描述了几个业务用例的模型。用例模型表示餐厅(业务系统)与其主要利益相关者(业务参与者和业务工作者)之间的交互。在确定了基本用例之后,您可以使用 <> 和 <> 用例来构建这些用例,以获得更好的清晰度。
使用此用例图表模板创建您自己的图表。
只需 单击 使用此模板 进行编辑,或 单击 创建空白 从头开始绘制。
其他 UML 文章
统一建模语言 (UML)